home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 501-525 / disk_518 / post / readme < prev    next >
Text File  |  1992-05-06  |  18KB  |  395 lines

  1. Postscript interpreter - README
  2. ===============================
  3.  
  4. Post V1.6 Copyright Adrian Aylward 1989, 1991
  5.  
  6. This distribution was released as the archive files "post16b.lzh" (binaries)
  7. and "post16s.lzh" (sources), 19-Apr-91
  8.  
  9. Binary files released in this distribution:
  10.  
  11. README            This file
  12. Post.info         Icon file
  13. post              User interface
  14. post.doc          Documentation file
  15. postband          Band printing driver
  16. postband.doc      Documentation file
  17. postlj            LaserJet printing driver
  18. postlj.doc        Documentation file
  19. post.library      Shared library for Amiga 500/1000/2000
  20. post.library.2620 Shared library for Amiga 2500 etc. (68020/030, 68881/2)
  21. init.ps           Standard postscript startup file
  22.  
  23. Font files:
  24.  
  25. FunkyFont         Tiny font, courtesy of Radical Eye software
  26. FunkyFont.afm     Metric file for the above
  27.  
  28. You will also need:
  29.  
  30. arp.library       Arp library, V39+
  31. conman            ConMan, V1.3+
  32.  
  33. You should find these on "All Good BBS's/disk libraries"
  34.  
  35. I have tested Post under WorkBench V1.3 only.  If you have 2.0 it should
  36. work, but you may need a more recent version of ConMan.  You may also need
  37. to use the CONDEV option to use ConMan instead of the standard console
  38. handler.
  39.  
  40. You will need at least a megabyte of memory.  Even with a megabyte you
  41. will have not be able to generate a full page in colour on the screen.
  42. For high density printer output (A4 at 300 dpi.) you will need 2 megabytes!  If memory is very tight, try running from the CLI, before workbench has
  43. been loaded.
  44.  
  45. Examples
  46. ========
  47.  
  48. There are some PostScript examples and demo programs that are being
  49. distributed separately, as they do not change from release to release.
  50. Look out for the file "psdemos1.lzh".
  51.  
  52. The PostScript Language
  53. =======================
  54.  
  55. If you don't know any PostScript I recomend obtaining a suitable tutorial
  56. book.  Try the "blue book" from Adobe:
  57.  
  58.     "PostScript Language Tutorial and Cookbook"
  59.     Adobe Systems Incorporated,
  60.     Addison-Wesley 1985, ISBN 0-201-10179-3
  61.  
  62. If you want to learn PostScript, Post is a valuable learning tool, as you
  63. run it interactively and view the output one the screen.  Without some basic
  64. knowledge you may find it difficult to understand what is happening if you
  65. have problems getting started.
  66.  
  67. Installation
  68. ============
  69.  
  70. Make sure you have installed arp.library in your libs: directory.  You will
  71. also need to install ConMan.  These packages are both freely available.  If
  72. you don't have them already any decent BBS or public domain disk library
  73. should have them.
  74.  
  75. Before using Post you will need to copy the library into your libs:
  76. directory.  If you have an Amiga A3000, or an accelerator card with a 32 bit
  77. cpu (68020/030/040) and a floating point unit (68881/68882 or 68040) you can
  78. use the 2620 version of the library instead.  This is compiled to use
  79. hardware floating point instructions and runs about twice as fast.
  80. Otherwise you must use the standard library - if you try the 2620 version
  81. it will refuse to open.  If you have an earlier version of Post installed
  82. be sure to update the library.
  83.  
  84. To use FunkyFont, set up a directory "PSFonts:" and copy FunkyFont into it.
  85. Make a directory "PSFonts:afms" and then copy FunkyFont.afm into it.  (This
  86. file is not actually used by Post, but may be needed by other applications
  87. using FunkyFont).  If you want to make FunkyFont your default font, then edit
  88. the file "init.ps".  You need to comment out the line near the end that
  89. defines Courier as the default and uncomment the one that defines FunkyFont
  90. instead.  (In a PostScript source file a percent symbol ("%") means that
  91. the rest of the line is a comment.)  FunkyFont was written by Tomas Rokicki
  92. of Radical Eye Software; it is included by kind permission and is freely
  93. distributable.
  94.  
  95. If you have any other PostScript fonts copy them into "PSFonts:" too.  (Do
  96. not confuse these with Amiga bitmapped fonts - these will NOT work, nor will
  97. .afm font metric files)  Their names should be the same as their PostScript
  98. names - e.g. "PSFonts:Times-Roman", "PSFonts:Times-Bold".  The files can
  99. either be ASCII text or in IBM PostScript font format.  If you have copied
  100. them from an IBM disk you will have to change the names; since MSDOS can only
  101. handle 8 character names its stores Times-Roman as "TI______.PFB" and
  102. Times-Bold as "TIB_____.PFB".  Then Post will load the fonts automatically
  103. as they are needed.
  104.  
  105. The startup file
  106. ================
  107.  
  108. The standard startup file "init.ps" should be run before most programs.  You
  109. should read it and the comments within it, as you may wish to customise it.
  110. It defines useful operators to mimic a standard PostScript printer.  It also
  111. handles automatic font downloading (see below).
  112.  
  113. Getting started
  114. ===============
  115.  
  116. Make sure that you have ConMan and the ARP library and you have installed
  117. Post as described above.
  118.  
  119. From the CLI you can just type "post init.ps screen", assuming that all the
  120. files are in the current directory.  You should see a new screen with a big
  121. requestor window appear.  Click on "OK" and wait while Post executes the
  122. startup file, then you are ready to go.
  123.  
  124. If it says that it can't get enough memory (if you have only 1 megabyte)
  125. try selecting "Black and White" on the requestor window, and selecting
  126. the "Close WBench" option.
  127.  
  128. For a quick check of the graphics, pick File/Interactive on the menu.  Then
  129. type into the narrow window at the top:
  130.  
  131.     200 200 150 0 360 arc stroke
  132.  
  133. The result should be a circle appearing in the lower window.
  134.  
  135. To erase the page type:
  136.  
  137.     erasepage
  138.  
  139. If you don't have any fonts yet all text output will just print as big dots.
  140. To make your text appear properly you need to set up a PSFonts: directory
  141. as described in the installation section.  To see if your fonts are working
  142. try:
  143.  
  144.     /FunkyFont findfont 20 scalefont setfont
  145.     10 10 moveto (Hello) show
  146.  
  147. To check your DefaultFont is set up properly try:
  148.  
  149.     /AnyFontYouDontHave findfont 20 scalefont setfont
  150.     10 30 moveto (This is the default font) show
  151.  
  152. When you have finished playing, type "quit".  Then "Project/Quit" will
  153. return you to the CLI.
  154.  
  155. To use the workbench startup click on the icon.  You will probably want to
  156. set up the tooltypes to execute the startup file "init.ps"; for now you can
  157. enter it in the requestor.
  158.  
  159. Fonts
  160. =====
  161.  
  162. As there are no fonts built in to the interpreter, all fonts must be loaded
  163. from the disk, as PostScript source.  The standard startup file redefines
  164. the findfont operator to automatically load fonts from the disk the first
  165. time they are referenced.  It first searches the directory "PSFonts:" for
  166. a file whose name is the same as the PostScript name (without the "/").  If
  167. it finds one it assumes it is a font definition and runs it.  Otherwise it
  168. tries the directory "PSFonts:OtherFonts".  (On my machine I keep all my Adobe
  169. fonts in PSFonts: and all my PD fonts in PSFonts:OtherFonts.)  You can change
  170. the list of directories to be searched by editing the startup file; you can
  171. also make it add a suffix to the font file names.
  172.  
  173. The startup file also defines a default font, which will be substituted if
  174. the font your program requests cannot be found.  The initial default font
  175. as set up by the standard startup file is a dummy font that just prints big
  176. dots.  It isn't readable, but at least allows most text operations to proceed
  177. without producing errors.  This means that if you don't have the font loading
  178. set up properly the only text output you will get is big dots.  So if that is
  179. what you see when you run Post it probably means that you don't have any
  180. fonts, rather than a problem with Post itself.
  181.  
  182. I have included a freely distributed font called "FunkyFont".  It is simple
  183. and takes up very little memory, but is quite readable.  If you don't have
  184. all the standard fonts it makes a useful default font.
  185.  
  186. Since a font is loaded into the vm just like any other PostScript code, it
  187. will be discarded when the vm is restored.  This means that in a multiple
  188. page document the fonts will likely be reloaded on every page.  To save time,
  189. it is usually much better to preload the fonts you are going to need.  You
  190. can do this using the "load font" menu command, or you can write yourself
  191. a little PostScript program to load your favourite fonts.  (Exercise for
  192. the user: write a driver to extract the font names from a conforming
  193. PostScript program and preload them.)
  194.  
  195. There are a number of commercial sources for fonts.  Both the Adobe type 1
  196. (encrypted) fonts and type 3 (standard downloadable) fonts are supported.
  197. Since type 1 fonts can contain special "hints" to improve the quality at
  198. small point sizes on low or medium resolution devices they usually give
  199. much higher quality results.  You can get type 1 fonts from Adobe, or a
  200. number of other vendors.
  201.  
  202. A good source of the standard set of 35 fonts as come on most PostScript
  203. printers is the Adobe Type Manager (13 fonts) and its associated Plus Pack
  204. (22 fonts).  The IBM version contains the fonts in a format which can be read
  205. by Post.  Various utility programs (e.g. CROSSDOS) are available to copy file
  206. from IBM 3.5 inch disks onto Amiga files.  Just copy the .PFB files into your
  207. PSFonts: directory, changing the names to their PostScript names. The Mac
  208. version contains the fonts too, but you need a utility program to change the
  209. file format.  The quality of the Adobe fonts is excellent; the printed
  210. output from Post on my LJIIP rivals that of a LaserWriter.
  211.  
  212. If you have any of the additional CompuGraphic outline fonts supplied by
  213. Gold Disk for use with their DTP programs you can generate type 3 fonts
  214. from them using their conversion program.  The quality is not as good as
  215. the original Compugraphic fonts but is acceptable for proofing purposes.
  216.  
  217. There are some freely copyable fonts that were originally distributed with
  218. the GhostScript project (another freeware PostScript interpreter available
  219. on Unix).  The quality of these is rather poor, as they appear to have been
  220. generated by tracing bitmap outlines.  However they will serve to get you
  221. started, and they are free.
  222.  
  223. There are also various shareware and PD fonts available.  Many of these were
  224. derived from the Mac or IBM.  They may still be in a foreign file format.
  225. The file should be converted to readable ASCII, with no strange control
  226. characters. Some of the fonts have Mac encoding vectors.  You won't notice
  227. the difference for the standard ASCII characters, as they are the
  228. same, but you may have to convert to the standard encoding to get
  229. more unusual characters like the trademark sign to work.  (Programs
  230. like Adobe illustrator do their own font encoding anyway.)  You
  231. will need to know some PostScript to make this change.  If you
  232. see the sequence "/Helvetica findfont /Encoding get" or
  233. "<dictionary> /MacVec get" try replacing it with "StandardEncoding".
  234.  
  235. You are recommended to ensure all your fonts have UniqueID's.  This makes
  236. the font caching code more efficient.  Often all you have to do is uncomment
  237. them in the source.  Any number will do for the ID (up to 2**24 - 1), as long
  238. as it is different for each of your fonts.  Make it a multiple of 4, as Adobe
  239. recommend adding 1 or 2 to the ID when modifying the font.
  240.  
  241. Each font should have a FontName entry.  This isn't actually required by
  242. Adobe, but certain programs such as Adobe Illustrator copy the font directory
  243. when recoding the font.  If the name is missing, you get a dictionary full
  244. error after the name has been added.
  245.  
  246. WorkBench 2.0
  247. =============
  248.  
  249. I don't have 2.0 myself, so I am not able to test Post under it.  But I
  250. understand that it works OK.  You need to set up ConMan it you want to
  251. run interactively.  It you mount it as "CNC:" then you can use the CONDEV
  252. option to access it.  Otherwise you will find the console output is going
  253. to the WorkBench screen.
  254.  
  255. Common problems
  256. ===============
  257.  
  258. Printers
  259. --------
  260.  
  261. Some people have difficulty in getting Post to work correctly with printer
  262. output.  The first thing to check is that you have your printer preferences
  263. set up properly.  Post uses the printer values to set the size and density
  264. of its page buffer, so if you have silly values set it may pick a silly
  265. value for its buffer size and fail due to running out of memory.  So Run
  266. Preferences, go to the graphic 2 screen, and check the page limits.  If you
  267. set the limits to "Absolute" then width and height should be in inches; if
  268. you choose "Pixels" then the dimensions are in dots.  Turn smoothing and
  269. centering off.  On the graphic 1 screen, set the Aspect to horizontal, the
  270. image to positive, and the shade to black and white or colour according to
  271. your printer.  If the output comes out distorted, to a silly scale, or with
  272. circles turned into ellipses, and takes forether to print, it is probably
  273. because the page size is wrong and the printer device is laboriously scaling
  274. it to fit.  N.B. the WB 1.3 Preferences program appears to have a bug in it:
  275. after typing a value into the size gadgets you need to hit the return key;
  276. if you simply exit with the mouse teh value you typed gets lost.
  277.  
  278. If you are having problems with the printer setup, it is better to run Post
  279. interactively.  Then you can look at the values in the page size gadgets
  280. in the requestor window to check they are all sensible.
  281.  
  282. Most page printers (lasers, DeskJet) will give the best quality with density
  283. set to the highest value.  For matrix printers try both the highest and the
  284. next highest - as the pins usually overlap at high densities the quality may
  285. not be any better.  If you are very tight on memory then a lower density
  286. will reduce the amount needed for the page buffer.
  287.  
  288. The Workbench printer drivers print bitmapped graphics dumps within the
  289. text margins, whereas PostScript expects it bitmaps to begin right at the
  290. edges of the paper.  You can line things up properly by setting the page
  291. offset gadgets in the requestor window.  Once you have experimented to
  292. determine the proper values to can put them in a shell script, or set them
  293. in the WorkBench icon, so you don't have to type them every time.
  294.  
  295. If you have a LaserJet printer or one that emulates it, you should use the
  296. special driver "postlj".  It is faster, supports all the paper sizes in
  297. both portrait and landscape orientation, and avoids all the problems with
  298. the standard Workbench drivers interface.  I have tested it on my HP LJIIP,
  299. but it should work on other LaserJet compatibles.
  300.  
  301. If you attempt to print a page that is larger than the maximum graphics dump
  302. size that the driver will handle, it will be truncated rather than scaled to
  303. fit.  N.B. the Workbench 1.3 LaserJet and DeskJet drivers do not support
  304. dumps larger than 8 by 10 inches.
  305.  
  306. Fonts
  307. -----
  308.  
  309. Most of the remaining troubles relate to fonts.  I personally recommend
  310. the Adobe fonts: the quality is excellent and you are assured of maximum
  311. compatability.  There are many other sources for fonts.  Even the shareware
  312. fonts normally work.  However being constructed slightly differently from the
  313. Adobe ones, they sometimes fail when programs attempt to modify them to
  314. change the character set encoding or character widths or obtain special
  315. effects.
  316.  
  317. Other troubles with fonts usually relate to not not being able to find the
  318. font file on the disk.  Read the comments in the init.ps file to see
  319. what directories in you filing system it is searching, also check whether
  320. you font files have extensions.  I prefer to keep my fonts without
  321. extensions, so for example on my machine "Times-Roman" is in the file
  322. "PSFonts:Times-Roman".  But you may want to keep the ".PFB" extension on
  323. your font filesif they are in IBM format - if you have other packages that
  324. like them that way.  You can easily change this by editing init.ps.
  325.  
  326. N.B. if you have some files with ".AFM" extensions they are NOT PostScript
  327. fonts.  The are font metric files that define the character widths and other
  328. data for use by application programs; they do not define the characters
  329. outlines themselves.  They are of no use to Post.
  330.  
  331. Use with other packages
  332. -----------------------
  333.  
  334. I have used Post extensively with PPage (V1.3).  I find that printing using
  335. postlj is about five times faster than printing direct from PPage.  It solves
  336. the page offset problem.  Also, it gives access to the Adobe type 1 font
  337. range, which is considerably more extensive than the hinted versions of the
  338. Compugraphic fonts that are presently available.  If you have the
  339. Helvetica-Narrow fonts (or if you don't have Helvetica) use the alternative
  340. prologue (alt_psprlg) so it won't waste time building them algorithmically
  341. (whether they are needed or not).
  342.  
  343. I have tested a PageStream file.  There was a problem with the prologue
  344. not being compatable with downloaded Adobe fonts.  If you load all your
  345. fonts beforehand, using the "Load font" menu selection, it should work OK.
  346. Hopefully this will be fixed soon.
  347.  
  348. I have printed Excellence! files successfully.
  349.  
  350. AmigaTeX with the PostScript driver should work OK.  I have seen a TeX
  351. example (from another system) that failed - it was trying to define a font
  352. with an encoding vector only 128 entries long.  If you meet this problem
  353. you can fix it if you are prepared to edit the PostScript file.
  354.  
  355. Debugging
  356. ---------
  357.  
  358. If your PostScript program is failing, if you know a little PostScript
  359. is usually quit easy to find out what is going wrong.  In fact if you are
  360. developing PostScript code Post is a much better debugging tool than your
  361. average PostScript printer.
  362.  
  363. It is normally best to use interactive mode for debugging.  Start up Post
  364. on the screen and pick the "interactive" option.  Then run you program
  365. from the interactive window.
  366.  
  367. To run your program, type:
  368.  
  369.     > (filename.ps) run
  370.  
  371. If it fails with an error message, you can then type interactive commands
  372. to see what happened.
  373.  
  374. To display the contents of the operand stack, type:
  375.  
  376.     > pstack
  377.  
  378. To display the contents of the execution stack at the point of the last
  379. error, type:
  380.  
  381.     > $error /estack get ==
  382.  
  383. To display the contents of any named variable, type:
  384.  
  385.     > varname ==
  386.  
  387. To see what is in the current dictionary, type:
  388.  
  389.     > currentdict {== ==} forall
  390.  
  391. If you have no idea how far your program got before it failed, try adding a
  392. few lines "1001 ==" "1002 ==" "1003 ==" to trace how far it got.  As
  393. PostScript files are pure ASCII text they are easy to inspect any modify
  394. with any editor.
  395.